package edu.zut2.object_demo;

public class StuTest {

    public static void main(String[] args) {

        Student student = new Student("2021001", "jack", 20);
//        Student student = new MiddleStudent();
        /**
         * 测试继承Object父类的方法
         * getClass:返回此 对象 的运行时类    getName():获取当前运行时类的名称
         * hashCode: 获取当前对象的hash值，每个对象的hash值是唯一的
         */
        Class<? extends Student> aClass = student.getClass();
        System.out.println("aClass = " + aClass.getName());

        int hashCode = student.hashCode();
        System.out.println("hashCode = " + Integer.toHexString(student.hashCode()));
        /**
         * 直接打印输出对象，默认执行Object类中的toString 方法    类名+@+hash值（十六进制）
         * 如果我们想打印当前对象的属性信息，我们可以重写toString()
         */
        System.out.println("student = " + student);

        /**
         * 对象的比较：
         * equals(): 用于比较对象  Object默认提供的equals是比较的地址
         * 实际中，一般是根据对象的属性进行比较的，此时我们可以重写equals方法
         */
        Student student2 = new Student("2021001", "jack", 20);
        boolean result = student.equals(student2);
        System.out.println("result = " + result);
        System.out.println(student.hashCode());
        System.out.println(student2.hashCode());
    }

}
